/**
 * 控件工厂类: 通过控件数据生成控件对象
 * @namespace Note.WidgetFactory
 *
 * 控件接口,每个控件必须实现
 * interface Widget{
 * 		string name; 		 // 类名
 * 		HTMLElement element; // html元素对象
 * 		void load(data);     // 通过data数据还原对象
 * 		object save();	  	 // 保存对象
 * 		void clear();	  	 // 清空控件数据
 * }
 * 
 * 构造函数
 * 
 * @constructor WidgetFactory
 * @author JunEnstein 2017-05-19
 * @param  object data 控件数据
 */
Note.WidgetFactory = function(data){
	// 转化为首字母大写的形式
	var name = data.name;
	var first = name.toUpperCase()[0];
	name = first + name.toLowerCase().substring(1, name.length);
	var widget = new Note.Widget[name](data.position);
	widget.load(data);
	return widget;
};